
package unq.edu.cui.tp.dominio;

import java.util.ArrayList;
import java.util.List;

import org.joda.time.DateTime;
import org.uqbar.commons.model.ObservableUtils;
import org.uqbar.commons.utils.Observable;

@Observable
public class Planificacion {
	
	private DateTime fecha;
	private boolean estado;
	private List<Asignacion> asignaciones;
	
	
	/**
	 * Eliminar asignacion
	 * @param asignacion
	 */
	public void eliminarAsignacion(Asignacion asignacion) {
		this.getAsignaciones().remove(asignacion);
		ObservableUtils.firePropertyChanged(this, "asignaciones", this.getAsignaciones());
	}
	
	/**
	 * Agregar asignacion
	 * @param a
	 */
	public void agregarAsignacion(Asignacion a){
		this.getAsignaciones().add(a);
		ObservableUtils.firePropertyChanged(this, "asignaciones", this.getAsignaciones());
	}
	
	/******************************************/
	//              Accessors                 //
	/******************************************/
	public DateTime getFecha() {
		return fecha;
	}
	public void setFecha(DateTime fecha) {
		this.fecha = fecha;
	}

	public boolean getEstado() {
	 return estado;
	}
	public void setEstado(boolean estado) {
		this.estado = estado;
		ObservableUtils.firePropertyChanged(this, "estado", this.getEstado());
	}
	public List<Asignacion> getAsignaciones() {
		return asignaciones;
	}
	public void setAsignaciones(List<Asignacion> asignaciones) {
		this.asignaciones = asignaciones;
	}
	public String getFechaSimple(){
		String fs = this.getFecha().toString("dd-MMMM-yyyy");
		return fs;
	}
	
	/******************************************/
	//              Constructors              //
	/******************************************/
	public Planificacion(DateTime fecha, boolean estado) {
		super();
		this.fecha = fecha;
		this.estado = estado;
		this.asignaciones = new ArrayList<Asignacion>();
	}
}
